<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
                xmlns:ui="http://java.sun.com/jsf/facelets"
                template="./../Plantillas/PlantillaAdmin.xhtml"
                xmlns:h="http://java.sun.com/jsf/html"
                xmlns:p  = "http://primefaces.org/ui"
                xmlns:f="http://java.sun.com/jsf/core">

    <ui:define name="titulo">
        Gestión de Productos
    </ui:define>
    <ui:define name="content">
        <h:form id="frm_gestProducto" >
            <p:panel>
                <h:panelGrid columns="2">
                    <h:panelGrid columns="1">
                        <p:selectOneRadio value="#{gestionProductos.tipoBusqueda}" 
                                          layout="pageDirection">  
                            <f:selectItem itemLabel="Todos" itemValue="#{1}" />  
                            <f:selectItem itemLabel="" itemValue="#{2}" />  
                            <f:selectItem itemLabel="" itemValue="#{3}" />

                             <p:ajax listener = "#{gestionProductos.activaCasillas}" 
                                    update="txtParmNomPro,cmbCategoria" 
                                    event = "change" />
                        </p:selectOneRadio> 
                    </h:panelGrid>

                    <h:panelGrid columns="2" style="margin-top: 30px;">
                        <h:outputLabel value="Nombre Producto :" />
                        <p:inputText id="txtParmNomPro"
                                     disabled="#{gestionProductos.flagParamNombre}"
                                     value="#{gestionProductos.paramMomProducto}"
                                     maxlength="50"/>
                        <h:outputLabel value="Seleccione Categoria :" />
                        <p:selectOneMenu id="cmbCategoria" 
                                         disabled="#{gestionProductos.flagParamCategoria}"
                                         value="#{gestionProductos.categoria}" >
                            <f:selectItems value="#{gestionProductos.listCategorias}"
                                           var="catego"
                                           itemLabel="#{catego.nombre}"
                                           itemValue="#{catgo}"/>
                        </p:selectOneMenu>
                        <p:commandButton value="Buscar" />
                        <p:commandButton value="Nuevo" 
                                         onclick="wgv_newEditProducto.show()"
                                         update=":frm_newEditProducto,:frm_newEditProducto:gliImgProduc"
                                         actionListener="#{gestionProductos.setupNuevo()}"/>
                    </h:panelGrid>
                </h:panelGrid>
            </p:panel>
            <p:separator />
            <p:panel>
                <p:dataTable id="dtb_productos" 
                             value="#{gestionProductos.listProductos}"
                             var="produc">
                    <p:column headerText="Nombre">
                        <h:outputLabel value="#{produc.nombre}" />
                    </p:column>
                    <p:column headerText="Nombre">
                        <h:outputLabel value="#{produc.descri}" />
                    </p:column>
                    <p:column headerText="Nombre">
                        <h:outputLabel value="#{produc.stock}" />
                    </p:column>
                    <p:column headerText="Nombre">
                        <h:outputLabel value="#{produc.precio}" />
                    </p:column>
                    <p:column headerText="Opciones">
                        <p:commandButton title="Editar"
                                         icon=" ui-icon-pencil"
                                         onclick="wgv_newEditProducto.show()"
                                         actionListener="#{gestionProductos.setupModificar(produc)}"
                                         update=":frm_newEditProducto,:frm_newEditProducto:gliImgProduc"/>
                        <p:commandButton  title="Eliminar"
                                          icon="ui-icon-trash"
                                          ondblclick="confirm_elimProducto.show()"
                                          actionListener="#{gestionProductos.setupEliminar(produc)}"
                                          update=":frm_newEditProducto"/>
                    </p:column>
                    
                </p:dataTable>
            </p:panel>
        </h:form>
        <p:dialog id="dlg_newEditProducto"
                  position="top" width="550"
                  widgetVar="wgv_newEditProducto" >
            <h:form id="frm_newEditProducto" enctype="multipart/form-data">
                <h:panelGrid columns="3">
                    <h:outputLabel value="Nobre producto : " />
                    <p:inputText id="txtNomPro" style="height: 14px;"
                                 size="50"
                        value="#{gestionProductos.producto.nombre}" />
                    <p:message for="txtNomPro" />
                    
                    <h:outputLabel value="Descripción producto : " />
                    <p:inputTextarea id="txtDesPro"
                                    style="width: 350px;
                                    height: 50px;
                                    text-transform:uppercase;
                                    line-height: 12px;"
                                     value="#{gestionProductos.producto.descri}" />
                    <p:message for="txtDesPro" />
                    
                    <h:outputLabel value="Precio : " />
                    <p:inputText id="txtPrecioPro" style="height: 14px;"
                                     value="#{gestionProductos.producto.precio}" />
                    <p:message for="txtDesPro" />
                    
                    <h:outputLabel value="Stock " />
                    <p:inputText id="txtStokPro" style="height: 14px;"
                                 value="#{gestionProductos.producto.stock}" />
                    <p:message for="txtStokPro" />
                    <p:selectOneMenu id="cmbEstado" 
                                      value="#{gestionProductos.producto.estado}" >
                         <f:selectItem itemLabel="Activo"
                                       itemValue="#{1}" />
                         <f:selectItem itemLabel="Activo"
                                       itemValue="#{2}" />
                    </p:selectOneMenu>
                </h:panelGrid>
                
                <p:growl id="messages" showDetail="true"/>  
                <p:fileUpload fileUploadListener="#{gestionProductos.handleFileUpload}"  
                            mode="advanced"  
                            update="messages,gliImgProduc"   
                            multiple="true"  
                            sizeLimit="500000"   
                            allowTypes="/(\.|\/)(gif|jpe?g|png)$/" />  
                  <p:panel>
                      <p:galleria id="gliImgProduc"
                                  value="#{gestionProductos.listImagenes}" 
                                  panelHeight="250"
                                  panelWidth="500"
                                  
                                  var="image">  
                          <p:graphicImage value="/ImagesProductos/#{image.nombre}" />  
                </p:galleria>   
                    
                </p:panel>
                <h:panelGrid columns="2" >
                    <p:commandButton value="Guardar"
                                     icon="ui-icon-disk"
                                     actionListener="#{gestionProductos.alterarProducto()}"
                                     update=":frm_gestProducto:dtb_productos"/>
                    <p:commandButton immediate="true"
                                     icon="ui-icon-cancel"
                                     value="Cancelar"
                                     onclick="wgv_newEditCategoria.hide()"
                                     action="#{gestionProductos.limpiar()}"/>
                </h:panelGrid>
            </h:form>
        </p:dialog>
        <!-- INICIO : Dialogo de confirmacion de eliminacion de la producto -->
        <p:confirmDialog id="cd_elimProducto"
               widgetVar="confirm_elimProducto" header="Confirmar Eliminación" 
                          message="¿Desea eliminar registro?" 
                          appendToBody="true">
             <h:form>
                 <p:commandButton value="SI" 
                                  action="#{gestionProductos.alterarProducto()}" 
                                  oncomplete="confirm_elimCategoria.hide();"
                                  update=":frm_gestProducto:dtb_productos"/>
                 <p:commandButton immediate="true"
                                  value="NO"
                                  onclick="confirm_elimProducto.hide()"/>
            </h:form>
         </p:confirmDialog>
        <!-- FIN : Dialogo de confirmacion de eliminacion de la producto -->
    </ui:define>

</ui:composition>
